<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>上课案例</title>
</head>
<body>
<!-- 
    Es6知识点：
    JavaScript的组成：ECMScript=dom=bom



t

    (一)
    let/const声明变量和var声明变量的区别：
    1.let和const声明的变量不会进行预解析，只能够先声明后面再使用
    2.用let和const不能够声明同一个变量
    3.用let和const声明的变量在{}都属于局部作用域的变量
    常见报错：num is not defined因为变量在{}里面声明，
    同时也只能够在这个{}中使用
  (二)
  let和const的区别：
1.let声明式变量在后续可以更改变量的值，声明的时候也可以不赋值
2.const声明的是常量，声明的时候必须赋值，赋值后不能够改变

(三)
赋值式定义的函数（表达式定义的函数）
var function(){
console.log(1);
}
箭头函数：就是对函数的表达式定义函数的简写，不写function用=>来代替
例:var fu=()=>{
    console.log(2);
    fn();
}
箭头函数中的注意点：
1.箭头函数中只有一个形参的时候。()可以省略不写，参数写在()
的位置
2.箭头函数只有一句代码，并且有返回值的时候。可以省略{}和return
不写，返回值直接写在=>后面
例：
原函数：
var fn=function(a){
    rerturn 123
}
console.log(fn());
箭头函数：

let fn=a=>123;
console.log(fn());

箭头函数转换为普通函数：
箭头函数：let fun=a=>b=>c=>a+b+c;
普通函数：
let fun=function(a){
    return function(b){
        return function(c){
            return a+b+c
        }
    }
}
(四)
箭头函数中的this指向和调用函数没有关系，和箭头函数定义在哪里有关
this指向：
1.普通函数:和函数的定义没有关系，主要看函数的调用方法
1.主动调用：  函数名() 函数中的 this 指向window
2.事件驱动调用 ele.事件类型=函数名；
函数中this指向ele
3.当对象中写函hanshu数的时候，用你函数 对象.函数名()函数中的this指向对象
2.箭头函数：和函数的位置有关系

(五)
let fun=function{
    console.log(arguments);
}
fun(10,20,30,52)
在箭头函数中没有arguments这个集合
//...合并运算符，把所有的参数合并为数组 赋值num
let fn=(...num)=>{
    console.log(num);
}
fn(1,2,3,4,5)
(六)
解构赋值：
1.对象用{}
2.数组用[]
例：
let person={
    name:'国荣'，
    age：24，
    sex：男，
    info：{
        id：2000，
        height：170，
        weight：200
    }
}
解构person对象中name属性，并且赋值给name变量
let{name}=person；
解构person的name属性，把属性值赋值给username这个变量
let{name：username}=person;
console.log(age);
解构多层对象，解构id
首先解构person的info属性，再解构info中id属性
let{info：{id，height，weight}}=person；
console.log(id,height,weight);
2.数组解构：
let arr[['a','c'],2,3,4]
let[arr1,arr2]=arr;
console,log(arr1,arr2);
多层的数组解构并且拿到数组中第一个数据中的数据
例：
let [[arr1,arr2]]=arr;
console.log(arr1,arr2);
例：var num1=10；
var num2=20；
var [num1,num2]=[num2,num1];
console,log(num1,mun2);
(七)
1.includes()判断字符串中是否包含某个字符
返回值：布尔值，有就返回true，没有就返回false
2.endsWith()判断字符串是否以指定的字符结尾
返回值：布尔值 是就返回true，不是就返回 false
3.starsWith()判断字符串是否以指定的字符开头
返回值：是就返回true ,不是就返回false
(八)
三点运算符；...也叫做扩展运算符和合并运算符
在箭头函数中的形参位置，一般当成合并运算符使用
把所有的实参合并为一个数组
例：
let fun=(...num)=>{
    conson.log(num);
}
fun(10,30,23,55)
(九)
// Object.prototype.toString.call() 更加准确判断数据类型
 -->

    
</body>
</html>